#include <stdio.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

#define FILE_NAME "log.txt"

int main()
{   
    umask(0);
    int fd = open(FILE_NAME, O_RDONLY);
    if(fd < 0)
    {
        perror("fd");
        return 1;
    }
    char outBuffer[1024];
    size_t num = read(fd, outBuffer, sizeof(outBuffer)-1);
    if(num>0) outBuffer[num] = 0;
    printf("%s",outBuffer);
    close(fd);
    return 0;
}
//int main()
//{   
//    umask(0);
//    //int fd = open(FILE_NAME, O_WRONLY | O_CREAT | O_TRUNC, 0666);
//    int fd = open(FILE_NAME, O_WRONLY | O_CREAT | O_APPEND, 0666);
//    //int fd = open(FILE_NAME, O_WRONLY | O_CREAT, 0666);
//    if(fd < 0)
//    {
//        perror("fd");
//        return 1;
//    }
//    char outBuffer[64];
//    int count = 5;
//    while(count)
//    {
//        sprintf(outBuffer, "%s:%d\n","uuu",count--);
//        write(fd, outBuffer, strlen(outBuffer));
//    }
//    close(fd);
//    return 0;
//}
//#define ONE (1<<0)
//#define TWO (1<<1)
//#define THREE (1<<2)
//#define FOUR (1<<3)
//
//
//void show(int flags)
//{
//    if(flags & ONE) printf("one\n");
//    if(flags & TWO) printf("two\n");
//    if(flags & THREE) printf("three\n");
//    if(flags & FOUR) printf("four\n");
//}
//
//int main()
//{
//    show(ONE);
//    printf("------------\n");
//    show(TWO);
//    printf("------------\n");
//    show(THREE | FOUR);
//    printf("------------\n");
//    show(ONE|TWO|THREE|FOUR);
//    printf("------------\n");
//    return 0;
//}
//int main()
//{   
//    //FILE* fp = fopen(FILE_NAME,"w");
//    FILE* fp = fopen(FILE_NAME,"a");
//    if(fp == NULL)
//    {
//        perror("fp error\n");
//    }
//    int count = 5;
//    while(count)
//    {
//        fprintf(fp,"%s %d\n","Hello Linux",count--);
//    }
//    fclose(fp);
//    return 0;
//}


//int main()
//{   
//    FILE* fp = fopen(FILE_NAME,"r");
//    if(fp == NULL)
//    {
//        perror("fp error\n");
//    }
//    char buffer[64];
//    while(fgets(buffer,sizeof(buffer),fp)!=NULL)
//    {
//        buffer[strlen(buffer)-1] = '\0';
//        puts(buffer);
//    }
//    fclose(fp);
//    return 0;
//}
